﻿// ******************************************************************
// 项目名称 :WSPay
// 项目描述 :
// 文件名称 : Extension.cs
// 版  本 : v1.0.0.0
// 说  明 :  
// 作  者 : mengzhong
// 邮  箱 :coodream@live.com
// 命名空间 : WSPay.Web
// 创建时间 : 2017.04.21.17:19
// 更新时间 : 2017.04.21.17:19
// ******************************************************************
//  Copyright meng zhong  2017. All rights reserved.
// ******************************************************************

using System;
using System.Web.Mvc;
using Newtonsoft.Json;
using WSPay.Common.Log;

namespace WSPay.Web
{
    public class Extension: HandleErrorAttribute
    {
        public override void OnException(ExceptionContext filterContext)
        {
            Exception exp = filterContext.Exception;
            Exception innerEx = exp.InnerException == null ? exp : exp.InnerException;
            while (innerEx.InnerException != null)
            {
                innerEx = innerEx.InnerException;
            }
            NLogLogger nlog = new NLogLogger();
            if (filterContext.HttpContext.Request.IsAjaxRequest())
            {
                nlog.Error(innerEx.Message);
                JsonConvert.SerializeObject(new { status = 1, msg = "请求发生错误，请联系管理员" });
            }
            else
            {
                nlog.Error("Error", exp);
                ViewResult vireResult = new ViewResult();
                vireResult.ViewName = "/Views/Shared/Error.cshtml";
                filterContext.Result = vireResult;
            }
            filterContext.ExceptionHandled = true;
            base.OnException(filterContext);
        }
    }
}